home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Professional Soft Collection 1.02
/
Professional Soft Collection 1.02.iso
/
winutils
/
wingauge.zip
/
WMETER.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-01-19
|
951b
|
43 lines
#pragma hdrfile "WinGauge.SYM"
#include <win31.h>
#include "wingauge.h"
#include "wingauge.rh"
#pragma hdrstop
static int MySin( int ), MyCos( int );
#pragma argsused
void wmPaint( HDC hDC, short sOffset, WORD wNumber, PSTR szBuffer )
{ register short xCenter = sOffset+16,
yCenter = sOffset+32-6;
MoveTo( hDC, xCenter, yCenter );
LineTo( hDC, xCenter - MyCos(wNumber), yCenter - MySin(wNumber) );
SetTextColor( hDC, BLACK );
}
static const int aSinCos[] = { 2, 3, 3, 3, 3, 3, 4, 3, 5, 5, 7, 10 };
static int MySin( int iArg )
{ int i;
if( iArg > 50 )
iArg = 100 - iArg; // Sin 100-x = sin x
for( i=0; (iArg-=aSinCos[i]) >= 0; ++i )
;
return i;
}
static int MyCos( int iArg )
{ int i;
BOOL fSign = FALSE;
if( iArg > 50 )
{ iArg = 100 - iArg; fSign = TRUE; } // Cos 100-x = -cos x
for( i=11; (iArg-=aSinCos[i]) >= 0; --i )
;
return ( fSign ? -i : i );
}